<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>404</title>


<style>
html, body {
	height: 100%;
	min-height: 450px;
	font-size: 32px;
	font-weight: 500;
	color: #5d7399;
	margin: 0;
	padding: 0;
	border: 0;
}

.content {
	height: 100%;
	position: relative;
	z-index: 1;
	background-color: #d2e1ec;
	background-image: -webkit-linear-gradient(top, #bbcfe1 0%, #e8f2f6 80%);
	background-image: linear-gradient(to bottom, #bbcfe1 0%, #e8f2f6 80%);
	overflow: hidden;
}

.snow {
	position: absolute;
	top: 0;
	left: 0;
	pointer-events: none;
	z-index: 20;
}

.main-text {
	padding: 20vh 20px 0 20px;
	text-align: center;
	line-height: 2em;
	font-size: 5vh;
}

.main-text h1 {
	font-size: 45px;
	line-height: 48px;
	margin: 0;
	padding: 0;
}

.main-text-a {
	height: 32px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.main-text-a a {
	font-size: 16px;
	text-decoration: none;
	color: #0066CC;
}

.main-text-a a:hover {
	color: #000;
}

.home-link {
	font-size: 0.6em;
	font-weight: 400;
	color: inherit;
	text-decoration: none;
	opacity: 0.6;
	border-bottom: 1px dashed rgba(93, 115, 153, 0.5);
}

.home-link:hover {
	opacity: 1;
}

.ground {
	height: 160px;
	width: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
	background: #f6f9fa;
	box-shadow: 0 0 10px 10px #f6f9fa;
}

.ground:before, .ground:after {
	content: '';
	display: block;
	width: 250px;
	height: 250px;
	position: absolute;
	top: -62.5px;
	z-index: -1;
	background: transparent;
	-webkit-transform: scaleX(0.2) rotate(45deg);
	transform: scaleX(0.2) rotate(45deg);
}

.ground:after {
	left: 50%;
	margin-left: -166.66667px;
	box-shadow: -340px 260px 15px #8193b2, -620px 580px 15px #8193b2, -900px
		900px 15px #b0bccf, -1155px 1245px 15px #b4bed1, -1515px 1485px 15px
		#8193b2, -1755px 1845px 15px #8a9bb8, -2050px 2150px 15px #91a1bc,
		-2425px 2375px 15px #bac4d5, -2695px 2705px 15px #a1aec6, -3020px
		2980px 15px #8193b2, -3315px 3285px 15px #94a3be, -3555px 3645px 15px
		#9aa9c2, -3910px 3890px 15px #b0bccf, -4180px 4220px 15px #bac4d5,
		-4535px 4465px 15px #a7b4c9, -4840px 4760px 15px #94a3be;
}

.ground:before {
	right: 50%;
	margin-right: -166.66667px;
	box-shadow: 325px -275px 15px #b4bed1, 620px -580px 15px #adb9cd, 925px
		-875px 15px #a1aec6, 1220px -1180px 15px #b7c1d3, 1545px -1455px 15px
		#7e90b0, 1795px -1805px 15px #b0bccf, 2080px -2120px 15px #b7c1d3,
		2395px -2405px 15px #8e9eba, 2730px -2670px 15px #b7c1d3, 2995px
		-3005px 15px #9dabc4, 3285px -3315px 15px #a1aec6, 3620px -3580px 15px
		#8193b2, 3880px -3920px 15px #aab6cb, 4225px -4175px 15px #9dabc4,
		4510px -4490px 15px #8e9eba, 4785px -4815px 15px #a7b4c9;
}

.mound {
	margin-top: -80px;
	font-weight: 800;
	font-size: 180px;
	text-align: center;
	color: #dd4040;
	pointer-events: none;
}

.mound:before {
	content: '';
	display: block;
	width: 600px;
	height: 200px;
	position: absolute;
	left: 50%;
	margin-left: -300px;
	top: 50px;
	z-index: 1;
	border-radius: 100%;
	background-color: #e8f2f6;
	background-image: -webkit-linear-gradient(top, #dee8f1, #f6f9fa 60px);
	background-image: linear-gradient(to bottom, #dee8f1, #f6f9fa 60px);
}

.mound:after {
	content: '';
	display: block;
	width: 28px;
	height: 6px;
	position: absolute;
	left: 50%;
	margin-left: -150px;
	top: 68px;
	z-index: 2;
	background: #dd4040;
	border-radius: 100%;
	-webkit-transform: rotate(-15deg);
	transform: rotate(-15deg);
	box-shadow: -56px 12px 0 1px #dd4040, -126px 6px 0 2px #dd4040, -196px
		24px 0 3px #dd4040;
}

.mound_text {
	-webkit-transform: rotate(6deg);
	transform: rotate(6deg);
}

.mound_spade {
	display: block;
	width: 35px;
	height: 30px;
	position: absolute;
	right: 50%;
	top: 42%;
	margin-right: -250px;
	z-index: 0;
	-webkit-transform: rotate(35deg);
	transform: rotate(35deg);
	background: #dd4040;
}

.mound_spade:before, .mound_spade:after {
	content: '';
	display: block;
	position: absolute;
}

.mound_spade:before {
	width: 40%;
	height: 30px;
	bottom: 98%;
	left: 50%;
	margin-left: -20%;
	background: #dd4040;
}

.mound_spade:after {
	width: 100%;
	height: 30px;
	top: -55px;
	left: 0%;
	box-sizing: border-box;
	border: 10px solid #dd4040;
	border-radius: 4px 4px 20px 20px;
}
</style>

</head>

<body translate="no">
	<div class="content">
		<canvas class="snow" id="snow" width="1349" height="400"></canvas>
		<div class="main-text">
			<h1>
				天啊。<br>服务器累了发生了500错误。
			</h1>
			<div class="main-text-a">
				<a href="#">< 返回首页</a>
			</div>
		</div>
		<div class="ground">
			<div class="mound">
				<div class="mound_text">500</div>
				<div class="mound_spade"></div>
			</div>
		</div>
	</div>


	<script>
		(function() {
			function ready(fn) {
				if (document.readyState != 'loading') {
					fn();
				} else {
					document.addEventListener('DOMContentLoaded', fn);
				}
			}

			function makeSnow(el) {
				var ctx = el.getContext('2d');
				var width = 0;
				var height = 0;
				var particles = [];

				var Particle = function() {
					this.x = this.y = this.dx = this.dy = 0;
					this.reset();
				}

				Particle.prototype.reset = function() {
					this.y = Math.random() * height;
					this.x = Math.random() * width;
					this.dx = (Math.random() * 1) - 0.5;
					this.dy = (Math.random() * 0.5) + 0.5;
				}

				function createParticles(count) {
					if (count != particles.length) {
						particles = [];
						for (var i = 0; i < count; i++) {
							particles.push(new Particle());
						}
					}
				}

				function onResize() {
					width = window.innerWidth;
					height = window.innerHeight;
					el.width = width;
					el.height = height;

					createParticles((width * height) / 10000);
				}

				function updateParticles() {
					ctx.clearRect(0, 0, width, height);
					ctx.fillStyle = '#f6f9fa';

					particles.forEach(function(particle) {
						particle.y += particle.dy;
						particle.x += particle.dx;

						if (particle.y > height) {
							particle.y = 0;
						}

						if (particle.x > width) {
							particle.reset();
							particle.y = 0;
						}

						ctx.beginPath();
						ctx.arc(particle.x, particle.y, 5, 0, Math.PI * 2,
								false);
						ctx.fill();
					});

					window.requestAnimationFrame(updateParticles);
				}

				onResize();
				updateParticles();
			}

			ready(function() {
				var canvas = document.getElementById('snow');
				makeSnow(canvas);
			});
		})();
	</script>

</body>
</html>